// $ANTLR 3.2 Sep 23, 2009 12:02:23 P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g 2010-12-09 19:06:58

// The variable 'variable' is assigned but its value is never used.
#pragma warning disable 168, 219
// Unreachable code detected.
#pragma warning disable 162


using System;
using Antlr.Runtime;
using IList 		= System.Collections.IList;
using ArrayList 	= System.Collections.ArrayList;
using Stack 		= Antlr.Runtime.Collections.StackList;


public partial class testLexer : Lexer {
    public const int Publish = 5;
    public const int Book = 11;
    public const int T__26 = 26;
    public const int Author = 8;
    public const int T__25 = 25;
    public const int T__24 = 24;
    public const int T__23 = 23;
    public const int T__22 = 22;
    public const int T__21 = 21;
    public const int T__20 = 20;
    public const int Who = 12;
    public const int Write = 4;
    public const int ID = 6;
    public const int EOF = -1;
    public const int Plural = 9;
    public const int T__19 = 19;
    public const int T__16 = 16;
    public const int WS = 13;
    public const int T__15 = 15;
    public const int T__18 = 18;
    public const int T__17 = 17;
    public const int T__14 = 14;
    public const int LuongTuSach = 10;
    public const int Publisher = 7;

    // delegates
    // delegators

    public testLexer() 
    {
		InitializeCyclicDFAs();
    }
    public testLexer(ICharStream input)
		: this(input, null) {
    }
    public testLexer(ICharStream input, RecognizerSharedState state)
		: base(input, state) {
		InitializeCyclicDFAs(); 

    }
    
    override public string GrammarFileName
    {
    	get { return "P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g";} 
    }

    // $ANTLR start "T__14"
    public void mT__14() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = T__14;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:7:7: ( ' ' )
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:7:9: ' '
            {
            	Match(' '); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "T__14"

    // $ANTLR start "T__15"
    public void mT__15() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = T__15;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:8:7: ( 'duoc ' )
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:8:9: 'duoc '
            {
            	Match("duoc "); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "T__15"

    // $ANTLR start "T__16"
    public void mT__16() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = T__16;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:9:7: ( 'bang ' )
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:9:9: 'bang '
            {
            	Match("bang "); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "T__16"

    // $ANTLR start "T__17"
    public void mT__17() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = T__17;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:10:7: ( 'tieng ' )
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:10:9: 'tieng '
            {
            	Match("tieng "); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "T__17"

    // $ANTLR start "T__18"
    public void mT__18() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = T__18;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:11:7: ( 'ngon ngu ' )
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:11:9: 'ngon ngu '
            {
            	Match("ngon ngu "); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "T__18"

    // $ANTLR start "T__19"
    public void mT__19() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = T__19;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:12:7: ( 'nao' )
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:12:9: 'nao'
            {
            	Match("nao"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "T__19"

    // $ANTLR start "T__20"
    public void mT__20() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = T__20;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:13:7: ( 'gi' )
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:13:9: 'gi'
            {
            	Match("gi"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "T__20"

    // $ANTLR start "T__21"
    public void mT__21() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = T__21;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:14:7: ( 'truoc nam ' )
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:14:9: 'truoc nam '
            {
            	Match("truoc nam "); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "T__21"

    // $ANTLR start "T__22"
    public void mT__22() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = T__22;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:15:7: ( 'trong nam ' )
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:15:9: 'trong nam '
            {
            	Match("trong nam "); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "T__22"

    // $ANTLR start "T__23"
    public void mT__23() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = T__23;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:16:7: ( 'sau nam ' )
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:16:9: 'sau nam '
            {
            	Match("sau nam "); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "T__23"

    // $ANTLR start "T__24"
    public void mT__24() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = T__24;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:17:7: ( 'nao ' )
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:17:9: 'nao '
            {
            	Match("nao "); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "T__24"

    // $ANTLR start "T__25"
    public void mT__25() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = T__25;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:18:7: ( 'da ' )
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:18:9: 'da '
            {
            	Match("da "); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "T__25"

    // $ANTLR start "T__26"
    public void mT__26() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = T__26;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:19:7: ( 'tac pham ' )
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:19:9: 'tac pham '
            {
            	Match("tac pham "); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "T__26"

    // $ANTLR start "Plural"
    public void mPlural() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = Plural;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:90:9: ( 'nhung ' | 'cac ' )
            int alt1 = 2;
            int LA1_0 = input.LA(1);

            if ( (LA1_0 == 'n') )
            {
                alt1 = 1;
            }
            else if ( (LA1_0 == 'c') )
            {
                alt1 = 2;
            }
            else 
            {
                NoViableAltException nvae_d1s0 =
                    new NoViableAltException("", 1, 0, input);

                throw nvae_d1s0;
            }
            switch (alt1) 
            {
                case 1 :
                    // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:90:11: 'nhung '
                    {
                    	Match("nhung "); 


                    }
                    break;
                case 2 :
                    // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:90:22: 'cac '
                    {
                    	Match("cac "); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "Plural"

    // $ANTLR start "LuongTuSach"
    public void mLuongTuSach() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = LuongTuSach;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:91:13: ( 'cuon ' | 'bo ' | 'quyen ' | 'tap ' )
            int alt2 = 4;
            switch ( input.LA(1) ) 
            {
            case 'c':
            	{
                alt2 = 1;
                }
                break;
            case 'b':
            	{
                alt2 = 2;
                }
                break;
            case 'q':
            	{
                alt2 = 3;
                }
                break;
            case 't':
            	{
                alt2 = 4;
                }
                break;
            	default:
            	    NoViableAltException nvae_d2s0 =
            	        new NoViableAltException("", 2, 0, input);

            	    throw nvae_d2s0;
            }

            switch (alt2) 
            {
                case 1 :
                    // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:91:15: 'cuon '
                    {
                    	Match("cuon "); 


                    }
                    break;
                case 2 :
                    // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:91:25: 'bo '
                    {
                    	Match("bo "); 


                    }
                    break;
                case 3 :
                    // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:91:33: 'quyen '
                    {
                    	Match("quyen "); 


                    }
                    break;
                case 4 :
                    // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:91:44: 'tap '
                    {
                    	Match("tap "); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "LuongTuSach"

    // $ANTLR start "Book"
    public void mBook() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = Book;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:92:6: ( 'sach ' | 'truyen ' | 'tieu thuyet ' )
            int alt3 = 3;
            int LA3_0 = input.LA(1);

            if ( (LA3_0 == 's') )
            {
                alt3 = 1;
            }
            else if ( (LA3_0 == 't') )
            {
                int LA3_2 = input.LA(2);

                if ( (LA3_2 == 'r') )
                {
                    alt3 = 2;
                }
                else if ( (LA3_2 == 'i') )
                {
                    alt3 = 3;
                }
                else 
                {
                    NoViableAltException nvae_d3s2 =
                        new NoViableAltException("", 3, 2, input);

                    throw nvae_d3s2;
                }
            }
            else 
            {
                NoViableAltException nvae_d3s0 =
                    new NoViableAltException("", 3, 0, input);

                throw nvae_d3s0;
            }
            switch (alt3) 
            {
                case 1 :
                    // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:92:8: 'sach '
                    {
                    	Match("sach "); 


                    }
                    break;
                case 2 :
                    // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:92:18: 'truyen '
                    {
                    	Match("truyen "); 


                    }
                    break;
                case 3 :
                    // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:92:30: 'tieu thuyet '
                    {
                    	Match("tieu thuyet "); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "Book"

    // $ANTLR start "Who"
    public void mWho() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = Who;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:93:5: ( 'ai ' | ( ( 'nguoi ' | Author ) 'nao ' ) )
            int alt5 = 2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0 == 'a') )
            {
                alt5 = 1;
            }
            else if ( (LA5_0 == 'n' || (LA5_0 >= 's' && LA5_0 <= 't')) )
            {
                alt5 = 2;
            }
            else 
            {
                NoViableAltException nvae_d5s0 =
                    new NoViableAltException("", 5, 0, input);

                throw nvae_d5s0;
            }
            switch (alt5) 
            {
                case 1 :
                    // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:93:7: 'ai '
                    {
                    	Match("ai "); 


                    }
                    break;
                case 2 :
                    // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:93:15: ( ( 'nguoi ' | Author ) 'nao ' )
                    {
                    	// P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:93:15: ( ( 'nguoi ' | Author ) 'nao ' )
                    	// P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:93:16: ( 'nguoi ' | Author ) 'nao '
                    	{
                    		// P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:93:16: ( 'nguoi ' | Author )
                    		int alt4 = 2;
                    		int LA4_0 = input.LA(1);

                    		if ( (LA4_0 == 'n') )
                    		{
                    		    int LA4_1 = input.LA(2);

                    		    if ( (LA4_1 == 'g') )
                    		    {
                    		        alt4 = 1;
                    		    }
                    		    else if ( (LA4_1 == 'h') )
                    		    {
                    		        alt4 = 2;
                    		    }
                    		    else 
                    		    {
                    		        NoViableAltException nvae_d4s1 =
                    		            new NoViableAltException("", 4, 1, input);

                    		        throw nvae_d4s1;
                    		    }
                    		}
                    		else if ( ((LA4_0 >= 's' && LA4_0 <= 't')) )
                    		{
                    		    alt4 = 2;
                    		}
                    		else 
                    		{
                    		    NoViableAltException nvae_d4s0 =
                    		        new NoViableAltException("", 4, 0, input);

                    		    throw nvae_d4s0;
                    		}
                    		switch (alt4) 
                    		{
                    		    case 1 :
                    		        // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:93:17: 'nguoi '
                    		        {
                    		        	Match("nguoi "); 


                    		        }
                    		        break;
                    		    case 2 :
                    		        // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:93:28: Author
                    		        {
                    		        	mAuthor(); 

                    		        }
                    		        break;

                    		}

                    		Match("nao "); 


                    	}


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "Who"

    // $ANTLR start "Write"
    public void mWrite() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = Write;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:94:7: ( 'viet ' | 'sang tac ' )
            int alt6 = 2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0 == 'v') )
            {
                alt6 = 1;
            }
            else if ( (LA6_0 == 's') )
            {
                alt6 = 2;
            }
            else 
            {
                NoViableAltException nvae_d6s0 =
                    new NoViableAltException("", 6, 0, input);

                throw nvae_d6s0;
            }
            switch (alt6) 
            {
                case 1 :
                    // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:94:9: 'viet '
                    {
                    	Match("viet "); 


                    }
                    break;
                case 2 :
                    // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:94:19: 'sang tac '
                    {
                    	Match("sang tac "); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "Write"

    // $ANTLR start "Author"
    public void mAuthor() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = Author;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:95:8: ( 'tac gia ' | 'nha van ' | 'soan gia ' )
            int alt7 = 3;
            switch ( input.LA(1) ) 
            {
            case 't':
            	{
                alt7 = 1;
                }
                break;
            case 'n':
            	{
                alt7 = 2;
                }
                break;
            case 's':
            	{
                alt7 = 3;
                }
                break;
            	default:
            	    NoViableAltException nvae_d7s0 =
            	        new NoViableAltException("", 7, 0, input);

            	    throw nvae_d7s0;
            }

            switch (alt7) 
            {
                case 1 :
                    // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:95:10: 'tac gia '
                    {
                    	Match("tac gia "); 


                    }
                    break;
                case 2 :
                    // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:95:23: 'nha van '
                    {
                    	Match("nha van "); 


                    }
                    break;
                case 3 :
                    // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:95:36: 'soan gia '
                    {
                    	Match("soan gia "); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "Author"

    // $ANTLR start "Publish"
    public void mPublish() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = Publish;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:96:9: ( 'xuat ban ' | 'phat hanh ' )
            int alt8 = 2;
            int LA8_0 = input.LA(1);

            if ( (LA8_0 == 'x') )
            {
                alt8 = 1;
            }
            else if ( (LA8_0 == 'p') )
            {
                alt8 = 2;
            }
            else 
            {
                NoViableAltException nvae_d8s0 =
                    new NoViableAltException("", 8, 0, input);

                throw nvae_d8s0;
            }
            switch (alt8) 
            {
                case 1 :
                    // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:96:11: 'xuat ban '
                    {
                    	Match("xuat ban "); 


                    }
                    break;
                case 2 :
                    // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:96:25: 'phat hanh '
                    {
                    	Match("phat hanh "); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "Publish"

    // $ANTLR start "Publisher"
    public void mPublisher() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = Publisher;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:98:2: ( 'cong ty ' | 'nha xuat ban ' | 'nha phat hanh ' )
            int alt9 = 3;
            int LA9_0 = input.LA(1);

            if ( (LA9_0 == 'c') )
            {
                alt9 = 1;
            }
            else if ( (LA9_0 == 'n') )
            {
                int LA9_2 = input.LA(2);

                if ( (LA9_2 == 'h') )
                {
                    int LA9_3 = input.LA(3);

                    if ( (LA9_3 == 'a') )
                    {
                        int LA9_4 = input.LA(4);

                        if ( (LA9_4 == ' ') )
                        {
                            int LA9_5 = input.LA(5);

                            if ( (LA9_5 == 'x') )
                            {
                                alt9 = 2;
                            }
                            else if ( (LA9_5 == 'p') )
                            {
                                alt9 = 3;
                            }
                            else 
                            {
                                NoViableAltException nvae_d9s5 =
                                    new NoViableAltException("", 9, 5, input);

                                throw nvae_d9s5;
                            }
                        }
                        else 
                        {
                            NoViableAltException nvae_d9s4 =
                                new NoViableAltException("", 9, 4, input);

                            throw nvae_d9s4;
                        }
                    }
                    else 
                    {
                        NoViableAltException nvae_d9s3 =
                            new NoViableAltException("", 9, 3, input);

                        throw nvae_d9s3;
                    }
                }
                else 
                {
                    NoViableAltException nvae_d9s2 =
                        new NoViableAltException("", 9, 2, input);

                    throw nvae_d9s2;
                }
            }
            else 
            {
                NoViableAltException nvae_d9s0 =
                    new NoViableAltException("", 9, 0, input);

                throw nvae_d9s0;
            }
            switch (alt9) 
            {
                case 1 :
                    // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:98:4: 'cong ty '
                    {
                    	Match("cong ty "); 


                    }
                    break;
                case 2 :
                    // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:98:17: 'nha xuat ban '
                    {
                    	Match("nha xuat ban "); 


                    }
                    break;
                case 3 :
                    // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:98:35: 'nha phat hanh '
                    {
                    	Match("nha phat hanh "); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "Publisher"

    // $ANTLR start "ID"
    public void mID() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = ID;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:102:5: ( ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' )+ )
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:102:9: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' )+
            {
            	// P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:102:9: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' )+
            	int cnt10 = 0;
            	do 
            	{
            	    int alt10 = 2;
            	    int LA10_0 = input.LA(1);

            	    if ( ((LA10_0 >= '0' && LA10_0 <= '9') || (LA10_0 >= 'A' && LA10_0 <= 'Z') || (LA10_0 >= 'a' && LA10_0 <= 'z')) )
            	    {
            	        alt10 = 1;
            	    }


            	    switch (alt10) 
            		{
            			case 1 :
            			    // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:
            			    {
            			    	if ( (input.LA(1) >= '0' && input.LA(1) <= '9') || (input.LA(1) >= 'A' && input.LA(1) <= 'Z') || (input.LA(1) >= 'a' && input.LA(1) <= 'z') ) 
            			    	{
            			    	    input.Consume();

            			    	}
            			    	else 
            			    	{
            			    	    MismatchedSetException mse = new MismatchedSetException(null,input);
            			    	    Recover(mse);
            			    	    throw mse;}


            			    }
            			    break;

            			default:
            			    if ( cnt10 >= 1 ) goto loop10;
            		            EarlyExitException eee10 =
            		                new EarlyExitException(10, input);
            		            throw eee10;
            	    }
            	    cnt10++;
            	} while (true);

            	loop10:
            		;	// Stops C# compiler whining that label 'loop10' has no statements


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "ID"

    // $ANTLR start "WS"
    public void mWS() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = WS;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:106:5: ( ( '\\t' | '\\n' )+ )
            // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:106:9: ( '\\t' | '\\n' )+
            {
            	// P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:106:9: ( '\\t' | '\\n' )+
            	int cnt11 = 0;
            	do 
            	{
            	    int alt11 = 2;
            	    int LA11_0 = input.LA(1);

            	    if ( ((LA11_0 >= '\t' && LA11_0 <= '\n')) )
            	    {
            	        alt11 = 1;
            	    }


            	    switch (alt11) 
            		{
            			case 1 :
            			    // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:
            			    {
            			    	if ( (input.LA(1) >= '\t' && input.LA(1) <= '\n') ) 
            			    	{
            			    	    input.Consume();

            			    	}
            			    	else 
            			    	{
            			    	    MismatchedSetException mse = new MismatchedSetException(null,input);
            			    	    Recover(mse);
            			    	    throw mse;}


            			    }
            			    break;

            			default:
            			    if ( cnt11 >= 1 ) goto loop11;
            		            EarlyExitException eee11 =
            		                new EarlyExitException(11, input);
            		            throw eee11;
            	    }
            	    cnt11++;
            	} while (true);

            	loop11:
            		;	// Stops C# compiler whining that label 'loop11' has no statements

            	_channel=HIDDEN;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "WS"

    override public void mTokens() // throws RecognitionException 
    {
        // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:8: ( T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | Plural | LuongTuSach | Book | Who | Write | Author | Publish | Publisher | ID | WS )
        int alt12 = 23;
        alt12 = dfa12.Predict(input);
        switch (alt12) 
        {
            case 1 :
                // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:10: T__14
                {
                	mT__14(); 

                }
                break;
            case 2 :
                // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:16: T__15
                {
                	mT__15(); 

                }
                break;
            case 3 :
                // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:22: T__16
                {
                	mT__16(); 

                }
                break;
            case 4 :
                // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:28: T__17
                {
                	mT__17(); 

                }
                break;
            case 5 :
                // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:34: T__18
                {
                	mT__18(); 

                }
                break;
            case 6 :
                // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:40: T__19
                {
                	mT__19(); 

                }
                break;
            case 7 :
                // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:46: T__20
                {
                	mT__20(); 

                }
                break;
            case 8 :
                // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:52: T__21
                {
                	mT__21(); 

                }
                break;
            case 9 :
                // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:58: T__22
                {
                	mT__22(); 

                }
                break;
            case 10 :
                // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:64: T__23
                {
                	mT__23(); 

                }
                break;
            case 11 :
                // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:70: T__24
                {
                	mT__24(); 

                }
                break;
            case 12 :
                // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:76: T__25
                {
                	mT__25(); 

                }
                break;
            case 13 :
                // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:82: T__26
                {
                	mT__26(); 

                }
                break;
            case 14 :
                // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:88: Plural
                {
                	mPlural(); 

                }
                break;
            case 15 :
                // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:95: LuongTuSach
                {
                	mLuongTuSach(); 

                }
                break;
            case 16 :
                // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:107: Book
                {
                	mBook(); 

                }
                break;
            case 17 :
                // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:112: Who
                {
                	mWho(); 

                }
                break;
            case 18 :
                // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:116: Write
                {
                	mWrite(); 

                }
                break;
            case 19 :
                // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:122: Author
                {
                	mAuthor(); 

                }
                break;
            case 20 :
                // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:129: Publish
                {
                	mPublish(); 

                }
                break;
            case 21 :
                // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:137: Publisher
                {
                	mPublisher(); 

                }
                break;
            case 22 :
                // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:147: ID
                {
                	mID(); 

                }
                break;
            case 23 :
                // P:\\Documents and Settings\\pntruongan\\My Documents\\Visual Studio 2010\\Projects\\testAntlr\\testAntlr\\Generated\\test.g:1:150: WS
                {
                	mWS(); 

                }
                break;

        }

    }


    protected DFA12 dfa12;
	private void InitializeCyclicDFAs()
	{
	    this.dfa12 = new DFA12(this);
	}

    const string DFA12_eotS =
        "\x02\uffff\x0c\x0e\x02\uffff\x0a\x0e\x01\x33\x0b\x0e\x01\uffff"+
        "\x01\x0e\x01\uffff\x07\x0e\x01\x4b\x02\x0e\x01\uffff\x08\x0e\x01"+
        "\uffff\x0a\x0e\x01\uffff\x02\x0e\x02\uffff\x01\x0e\x02\uffff\x03"+
        "\x0e\x01\uffff\x06\x0e\x02\uffff\x01\x0e\x01\uffff\x03\x0e\x03\uffff"+
        "\x02\x0e\x04\uffff\x01\x0e\x03\uffff\x01\x0e\x07\uffff\x02\x78\x02"+
        "\uffff\x01\x78";
    const string DFA12_eofS =
        "\x7a\uffff";
    const string DFA12_minS =
        "\x01\x09\x01\uffff\x04\x61\x01\x69\x02\x61\x01\x75\x02\x69\x01"+
        "\x75\x01\x68\x02\uffff\x01\x6f\x01\x20\x01\x6e\x01\x20\x01\x65\x01"+
        "\x6f\x01\x63\x02\x6f\x01\x61\x01\x30\x01\x63\x01\x61\x01\x63\x01"+
        "\x6f\x01\x6e\x01\x79\x01\x20\x01\x65\x02\x61\x01\x63\x01\uffff\x01"+
        "\x67\x01\uffff\x01\x6e\x01\x6f\x01\x6e\x02\x20\x01\x6e\x01\x6f\x01"+
        "\x20\x01\x6e\x01\x20\x01\uffff\x01\x20\x01\x68\x01\x67\x01\x6e\x01"+
        "\x20\x01\x6e\x01\x67\x01\x65\x01\uffff\x03\x74\x02\x20\x01\x67\x01"+
        "\x20\x01\x63\x01\x65\x02\x67\x01\x20\x01\x69\x02\uffff\x01\x67\x01"+
        "\x70\x01\uffff\x03\x20\x01\uffff\x02\x20\x01\x6e\x03\x20\x02\uffff"+
        "\x01\x20\x01\uffff\x01\x20\x01\x6e\x01\x20\x01\uffff\x01\x69\x01"+
        "\uffff\x02\x20\x01\x61\x02\uffff\x01\x67\x01\x20\x03\uffff\x01\x20"+
        "\x01\uffff\x01\x61\x01\x6e\x01\x69\x02\x20\x01\x61\x02\x6e\x01\x20"+
        "\x01\uffff\x01\x6e";
    const string DFA12_maxS =
        "\x01\x7a\x01\uffff\x01\x75\x01\x6f\x01\x72\x01\x68\x01\x69\x01"+
        "\x6f\x02\x75\x02\x69\x01\x75\x01\x68\x02\uffff\x01\x6f\x01\x20\x01"+
        "\x6e\x01\x20\x01\x65\x01\x75\x01\x70\x01\x75\x01\x6f\x01\x75\x01"+
        "\x7a\x01\x75\x01\x61\x01\x63\x01\x6f\x01\x6e\x01\x79\x01\x20\x01"+
        "\x65\x02\x61\x01\x63\x01\uffff\x01\x67\x01\uffff\x01\x75\x01\x79"+
        "\x01\x6e\x02\x20\x01\x6e\x01\x6f\x01\x7a\x01\x6e\x01\x20\x01\uffff"+
        "\x01\x20\x01\x68\x01\x67\x01\x6e\x01\x20\x01\x6e\x01\x67\x01\x65"+
        "\x01\uffff\x03\x74\x02\x20\x01\x67\x01\x20\x01\x63\x01\x65\x01\x67"+
        "\x01\x70\x01\x20\x01\x69\x02\uffff\x01\x67\x01\x78\x01\uffff\x03"+
        "\x20\x01\uffff\x02\x20\x01\x6e\x03\x20\x02\uffff\x01\x20\x01\uffff"+
        "\x01\x20\x01\x6e\x01\x20\x01\uffff\x01\x69\x01\uffff\x02\x20\x01"+
        "\x61\x02\uffff\x01\x67\x01\x20\x03\uffff\x01\x20\x01\uffff\x01\x61"+
        "\x01\x6e\x01\x69\x02\x20\x01\x61\x02\x6e\x01\x20\x01\uffff\x01\x6e";
    const string DFA12_acceptS =
        "\x01\uffff\x01\x01\x0c\uffff\x01\x16\x01\x17\x16\uffff\x01\x0c"+
        "\x01\uffff\x01\x0f\x0a\uffff\x01\x07\x08\uffff\x01\x11\x0d\uffff"+
        "\x01\x0b\x01\x06\x02\uffff\x01\x0a\x03\uffff\x01\x0e\x06\uffff\x01"+
        "\x02\x01\x03\x01\uffff\x01\x10\x03\uffff\x01\x0d\x01\uffff\x01\x05"+
        "\x03\uffff\x01\x15\x01\x12\x02\uffff\x01\x14\x01\x04\x01\x08\x01"+
        "\uffff\x01\x09\x09\uffff\x01\x13\x01\uffff";
    const string DFA12_specialS =
        "\x7a\uffff}>";
    static readonly string[] DFA12_transitionS = {
            "\x02\x0f\x15\uffff\x01\x01\x0f\uffff\x0a\x0e\x07\uffff\x1a"+
            "\x0e\x06\uffff\x01\x0a\x01\x03\x01\x08\x01\x02\x02\x0e\x01\x06"+
            "\x06\x0e\x01\x05\x01\x0e\x01\x0d\x01\x09\x01\x0e\x01\x07\x01"+
            "\x04\x01\x0e\x01\x0b\x01\x0e\x01\x0c\x02\x0e",
            "",
            "\x01\x11\x13\uffff\x01\x10",
            "\x01\x12\x0d\uffff\x01\x13",
            "\x01\x16\x07\uffff\x01\x14\x08\uffff\x01\x15",
            "\x01\x18\x05\uffff\x01\x17\x01\x19",
            "\x01\x1a",
            "\x01\x1b\x0d\uffff\x01\x1c",
            "\x01\x1d\x0d\uffff\x01\x1f\x05\uffff\x01\x1e",
            "\x01\x20",
            "\x01\x21",
            "\x01\x22",
            "\x01\x23",
            "\x01\x24",
            "",
            "",
            "\x01\x25",
            "\x01\x26",
            "\x01\x27",
            "\x01\x28",
            "\x01\x29",
            "\x01\x2b\x05\uffff\x01\x2a",
            "\x01\x2c\x0c\uffff\x01\x2d",
            "\x01\x2e\x05\uffff\x01\x2f",
            "\x01\x30",
            "\x01\x32\x13\uffff\x01\x31",
            "\x0a\x0e\x07\uffff\x1a\x0e\x06\uffff\x1a\x0e",
            "\x01\x35\x0a\uffff\x01\x36\x06\uffff\x01\x34",
            "\x01\x37",
            "\x01\x38",
            "\x01\x39",
            "\x01\x3a",
            "\x01\x3b",
            "\x01\x3c",
            "\x01\x3d",
            "\x01\x3e",
            "\x01\x3f",
            "\x01\x40",
            "",
            "\x01\x41",
            "",
            "\x01\x42\x06\uffff\x01\x43",
            "\x01\x44\x09\uffff\x01\x45",
            "\x01\x46",
            "\x01\x47",
            "\x01\x28",
            "\x01\x48",
            "\x01\x49",
            "\x01\x4a\x0f\uffff\x0a\x0e\x07\uffff\x1a\x0e\x06\uffff\x1a"+
            "\x0e",
            "\x01\x4c",
            "\x01\x4d",
            "",
            "\x01\x4e",
            "\x01\x4f",
            "\x01\x50",
            "\x01\x51",
            "\x01\x52",
            "\x01\x53",
            "\x01\x54",
            "\x01\x55",
            "",
            "\x01\x56",
            "\x01\x57",
            "\x01\x58",
            "\x01\x59",
            "\x01\x5a",
            "\x01\x5b",
            "\x01\x5c",
            "\x01\x5d",
            "\x01\x5e",
            "\x01\x5f",
            "\x01\x61\x08\uffff\x01\x60",
            "\x01\x62",
            "\x01\x63",
            "",
            "",
            "\x01\x64",
            "\x01\x66\x05\uffff\x01\x65\x01\uffff\x01\x66",
            "",
            "\x01\x5c",
            "\x01\x67",
            "\x01\x68",
            "",
            "\x01\x28",
            "\x01\x66",
            "\x01\x69",
            "\x01\x67",
            "\x01\x6a",
            "\x01\x6a",
            "",
            "",
            "\x01\x6b",
            "",
            "\x01\x6c",
            "\x01\x6d",
            "\x01\x6e",
            "",
            "\x01\x6f",
            "",
            "\x01\x3c",
            "\x01\x52",
            "\x01\x70",
            "",
            "",
            "\x01\x71",
            "\x01\x28",
            "",
            "",
            "",
            "\x01\x5c",
            "",
            "\x01\x72",
            "\x01\x73",
            "\x01\x74",
            "\x01\x75",
            "\x01\x76",
            "\x01\x77",
            "\x01\x3c",
            "\x01\x3c",
            "\x01\x79",
            "",
            "\x01\x3c"
    };

    static readonly short[] DFA12_eot = DFA.UnpackEncodedString(DFA12_eotS);
    static readonly short[] DFA12_eof = DFA.UnpackEncodedString(DFA12_eofS);
    static readonly char[] DFA12_min = DFA.UnpackEncodedStringToUnsignedChars(DFA12_minS);
    static readonly char[] DFA12_max = DFA.UnpackEncodedStringToUnsignedChars(DFA12_maxS);
    static readonly short[] DFA12_accept = DFA.UnpackEncodedString(DFA12_acceptS);
    static readonly short[] DFA12_special = DFA.UnpackEncodedString(DFA12_specialS);
    static readonly short[][] DFA12_transition = DFA.UnpackEncodedStringArray(DFA12_transitionS);

    protected class DFA12 : DFA
    {
        public DFA12(BaseRecognizer recognizer)
        {
            this.recognizer = recognizer;
            this.decisionNumber = 12;
            this.eot = DFA12_eot;
            this.eof = DFA12_eof;
            this.min = DFA12_min;
            this.max = DFA12_max;
            this.accept = DFA12_accept;
            this.special = DFA12_special;
            this.transition = DFA12_transition;

        }

        override public string Description
        {
            get { return "1:1: Tokens : ( T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | Plural | LuongTuSach | Book | Who | Write | Author | Publish | Publisher | ID | WS );"; }
        }

    }

 
    
}
